#ifndef __TEACHER_H__
#define __TEACHER_H__
#include "Person.h"
#include "Klass.h"
#include "Student.h"
#include "Observer.h"

class Teacher : public Person, public KlassObserver
{
public:
    Teacher(std::string id, std::string name, size_t age, std::vector<Klass *> klasses);    
    virtual std::string Introduce();
    std::string IntroduceWith(Student &student);
    bool IsTeach(const Student &student);
    virtual void notify(const Student &student) const;

private:
    std::vector<Klass *> klasses;//生命周期可以不一样
    std::string BuildIntroduceBaseString();
};

#endif /* __TEACHER_H__ */